﻿/*************************************************************************************
 * 文 件 名:   HK_ImageAndText
 * 
 * 描    述:   对Unity中的某些功能进行重写，改善原本Unity默认功能中不大合适的地方，提高项目开发效率
 *            目前包含：Image、Text组件重写，新建时默认取消勾选RaycastTarget，因为绝大多数时候这两个组件并不需要RaycastTarget，这样可以提高运行时效率。
 * 
 * 版    本：  V1.0
 * 创 建 者：  京产肠饭
 * 创建时间：  2021/11/7
 * 链   接：  https://gitee.com/JingChanChangFan/hk_-unity-tools
*************************************************************************************/

using UnityEditor;
using UnityEngine;
using UnityEngine.UI;

namespace HKTools
{
    public class HK_ImageAndText
    {
        /// <summary>
        /// 重写Image组件的创建方法，创建后默认不开启RaycastTarget
        /// </summary>
        [MenuItem("GameObject/UI/HK_Image")]
        static void CreateImage()
        {
            Transform parent_TF = Selection.activeGameObject.transform;

            EditorApplication.ExecuteMenuItem("GameObject/UI/Image");

            var hk_Image = Selection.activeGameObject;
            Undo.SetTransformParent(hk_Image.transform, parent_TF, "undo");
            hk_Image.GetComponent<Image>().raycastTarget = false;
            hk_Image.name = "HK_Image";
        }

        /// <summary>
        /// 重写Text组件的创建方法，创建后默认不开启RaycastTarget
        /// </summary>
        [MenuItem("GameObject/UI/HK_Text")]
        static void CreateText()
        {
            Transform parent_TF = Selection.activeGameObject.transform;

#if UNITY_2021_2_OR_NEWER
            EditorApplication.ExecuteMenuItem("GameObject/UI/Legacy/Text");
#else
        EditorApplication.ExecuteMenuItem("GameObject/UI/Text");
#endif

            var hk_Text = Selection.activeGameObject;
            Undo.SetTransformParent(hk_Text.transform, parent_TF, "undo");
            hk_Text.GetComponent<Text>().raycastTarget = false;
            hk_Text.name = "HK_Text";
        }
    }
}